﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/* Universität Trier
 * Fachbereich II - Linguistische Datenverarbeitung
 * Bachelor of Arts
 * Computerlinguistik (HF), English Language and Linguistics (NF)
 * 
 * 
 * A Heuristic Approach to Anaphora Resolution
 * 
 * Bachelor-Arbeit
 * 15. November 2013
 * 
 * Name:			Christopher Michels
 * Matrikelnummer:	1007830
 * 
 * Adresse:			Universitätsring 8d
 * 
 * Telefon:			(06 51) 99 24 11 55
 * E-Mail:			s2chmich@uni-trier.de
 * 
 * Erstprüfer: 		Dr. Sven Naumann
 * Zweitprüfer:		Prof. Dr. Reinhard Köhler
 * 
 * Sources:
 * Biber, Douglas et al. (1999). Longman Grammar of Spoken and Wri􀆩en English. Studies in Language and Linguistics. Harlow, UK: Longman.
 * Mitkov, Ruslan (1998). “Robust pronoun resolution with limited knowledge”. In: Proceedings of the 36th Annual Meeting of the Association for Computational Linguistics and 17th International Conference on Computational Linguistics. Vol. 2. ACL '98. Montreal, Canada: Association for Computational Linguistics, 869–875.
 * Mitkov, Ruslan (2000). “Pronoun Resolution: The Practical Alternative”. In: Corpus-based and Computational Approaches to Discourse Anaphora. Ed. by Simon Botley and Anthony Mark McEnery. Studies in Corpus Linguistics. J. Benjamins Pub. Co.
 * Mitkov, Ruslan (2002). Anaphora resolution. Studies in Language and Linguistics. London, UK: Longman.
 * Santorini, Beatrice (1991). Part-of-Speech Tagging Guidelines for the Penn Treebank Project. URL: http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/data/Penn-Treebank-Tagset.pdf (visited on 11/06/2013).
 * Schmid, Helmut (1994). “Probabilistic Part-of-Speech Tagging Using Decision Trees”. In: Proceedings of the International Conference on New Methods in Language Processing. Manchester, UK.
 * Schmid, Helmut (1995). “Improvements In Part-of-Speech Tagging With an Application To German”. In: Proceedings of the ACL SIGDAT-Workshop. Dublin, Ireland.
 * Textalyser (2004). Bernhard Huber Internet Engineering Company. URL: http://textalyser.net (visited on 10/23/2013).
 */

namespace KPAR
{
    /* This class is a base class for the classes Pronoun and Candidate.
     * It provides a small number of static fields and writing access methods
     * for those fields.
     */
    abstract class Anaphora
    {
        /* Strings of pronouns are stored here. 
         * (lower case) 
         */
        public static List<string> PronounStrings { get; set; }

       /* Strings of usually deictic pronouns are stored here.  
        * (lower case) 
        */
        public static List<string> DeicticPronounStrings { get; set; }

        /* Strings of masculine pronouns are stored here. 
         * (lower case) 
         */
        public static List<string> MascPronounStrings { get; set; }

        /* Strings of feminine pronouns are stored here. 
         * (lower case) 
         */
        public static List<string> FemiPronounStrings { get; set; }

        /* Strings of neuter pronouns are stored here. 
         * (lower case) 
         */
        public static List<string> NeutPronounStrings { get; set; }

        /* Strings of singular pronouns are stored here. 
         * (lower case) 
         */
        public static List<string> SgPronounStrings { get; set; }

        /* Strings of plural pronouns are stored here. 
         * (lower case) 
         */
        public static List<string> PlPronounStrings { get; set; }

        /* Strings of possessive pronouns potentially used
         * attributively are stored here. 
         * (lower case) 
         */
        public static List<string> AttrPossStrings { get; set; }

        /* Strings of nouns which allow a number mismatch in
         * anaphora resolution.
         * (incomplete)
         * (lower case) 
         */
        public static List<string> NumberMismatchNouns { get; set; }
        
        /* POS tags of the different pronoun types are stored here.
         * (lower case) 
         */
        public static List<string> PronounTypes { get; set; }

        /* Chunk types acting as clause limiters are stored here. 
         * (lower case) 
         */
        public static List<string> ClauseLimiterTypes { get; set; }

        /* Verbs relevant for the verb preference indicator are stored here.
         * (lower case) 
         */
        public static List<string> PreferringVCs { get; set; }

        /* Nouns relevant for the noun phrase preference indicator 
         * (lower case) 
         * are stored here.
         */
        public static List<string> PreferringNPs { get; set; }

        /* Definite articles are stored here.
         * (lower case) 
         */
        public static List<string> DefArticles { get; set; }

        /* Indefinite articles are stored here.
         * (lower case) 
         */
        public static List<string> IndefArticles { get; set; }

        /* Domain concepts are stored here.
         * (lower case) 
         */
        public static List<string> DomainConcepts { get; set; }
    }
}
